home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d8
/
pdriver5.arc
/
DRIVERS.DOC
< prev
next >
Wrap
Text File
|
1989-12-17
|
14KB
|
385 lines
User documentation for the packet driver collection
Russell Nelson
Clarkson University
Potsdam, NY 13676
nelson@clutx.clarkson.edu
Why?
Every PC Ethernet board is different. The 3c501 was, for
some time, the most popular board, and would have become the
defacto standard but for its poor performance. By the time 3Com
created a board with acceptable performance, so had many others,
and 3Com lost its lead. FTP Software, in order to support each
of these boards without losing its collective mind, created the
Packet Driver Spec (PDS).
What?
Some boards use DMA, some use programmed I/O, and some use
shared memory. The PDS masks the differences between these
boards by defining a software interface to the boards. This
software interface is a software interrupt in the range between
0x60 (hex) and 0x80.
How?
The packet driver must be installed prior to use. Since
each packet driver takes only approximately 1800 bytes, this is
best done in your autoexec.bat. Since the Ethernet boards typi-
cally have jumpers on board, the packet driver must be informed
of the values of these jumpers (auto-configure is possible, but
can disturb other boards). The first parameter is the software
interrupt used to communicate with the packet driver. And again,
because each board is different, the rest of the parameters will
be different.
Before installing the packet driver, you must choose a software
interrupt number in the range between 0x60 and 0x80. Some of
these interrupts are used for other purposes, so your first
choice may not work. See Appendix A for the section of Ralf
Brown's interrupt list between 0x60 and 0x80.
Running a packet driver with no specifications will give a usage
message. The parameters for each packet driver are documented
below.
3Com 3C501
usage: 3C501 packet_int_no [int_no [io_addr]]
The 3c501 requires two additional parameters -- the
hardware interrupt number and the I/O address. The defaults are
3 and 0x300.
3Com 3C503
usage: 3C503 packet_int_no [int_level(2-5) [io_addr
[cable_type]]]
The 3c503 requires three additional parameters -- the
hardware interrupt number, the I/O address, and the cable type.
The 3c503 can be attached to thick or thin Ethernet cables, and
the selection is made in software. The cable type parameter
should be zero for thin, and one for thick. The defaults are 2,
0x300, and 0 (thin). The 3c503 uses shared memory whose address
is set by jumpers, but the software can ask the board what the
address is.
3Com 3c505
usage: 3c505 packet_int_no [int_no [io_addr [base_addr]]]
The 3c505 requires three additional parameters -- the
hardware interrupt number, the I/O address, and the memory base
address. The defaults are 2 and 0x300 and 0xd000.
3Com 3c523
usage: 3c523 packet_int_no [int_no [io_addr [base_addr]]]
The 3c523 requires three additional parameters -- the
hardware interrupt number, the I/O address, and the memory base
address. The defaults are 3 and 0x300 and 0xc000.
IBM Token Ring
usage: ibmtoken packet_int_no [adapter_no]
The IBM Token Ring packet driver requires one additional
parameters -- the adapter number. The default is zero. See
IBMTOKEN.DOC for more information.
BICC Data Networks' ISOLAN 4110 ethernet
usage: isolan packet_int_no [int_no [base_addr]]
The BICC Isolan requires three additional parameters -- the
hardware interrupt number and the memory base address. The
defaults are 2 and 0xb800h.
3Com ne1000
usage: ne1000 packet_int_no [int_no [io_addr]]
The ne1000 requires two additional parameters -- the
hardware interrupt number and the I/O address. The defaults are
3 and 0x300.
Racal-Interlan (Formerly Interlan) NI5010
usage: NI5010 packet_int_no [int_no [io_addr]]
The NI5010 requires two additional parameters -- the
hardware interrupt number and the I/O address. The defaults are
3 and 0x300.
Racal-Interlan (Formerly Micom-Interlan) NI5210
usage: ni5210 packet_int_no [int_no [io_addr [base_addr]]]
The NI5210 requires three additional parameters -- the
hardware interrupt number, the I/O address, and the memory base
address. The defaults are 2 and 0x360 and 0xd000. Note that
Interlan sets the default memory base to 0xa000, which is brain-
damaged, because that area of memory is specifically reserved for
video adapters, and in fact the EGA and VGA use it.
Racal-Interlan (Formerly Micom-Interlan) NI9210
usage: ni9210 packet_int_no [int_no [io_addr [base_addr]]]
The NI9210 requires three additional parameters -- the
hardware interrupt number, the I/O address, and the memory base
address. The defaults are 2 and 0x360 and 0xd000.
SLIP8250
usage: SLIP8250 packet_int_no [driver_class] [int_no]
[io_addr] [baud_rate] [send_buf_size] [recv_buf_size]
The driver_class should be SLIP, KISS, AX.25, or a
number.
The SLIP8250 is not strictly an Ethernet adapter, however
some software packages (such as KA9Q's NET) support Serial Line
IP (SLIP). SLIP must be specially supported because it doesn't
use ARP and has no hardware addresses prepended to its packets.
The PDS is not clear on this, but the packet driver does the SLIP
encoding.
The parameters are as follows. The driver_class is the class
that is returned to a client of the packet driver spec in the
Drive_Info call. The int_no is the hardware interrupt number,
defaults to 3 (COM1). The io_addr is the hardware I/O address,
defaults to 0x3f8 (COM1). The baud_rate defaults to 4800 baud.
The send_buf_size and recv_buf_size default to 3000 each.
Western Digital WD8003E,WD8003ET/A
usage: WD8003E packet_int_no [int_level [io_addr
[mem_base]]]
The WD8003E driver is also for the WD8003ET/A, a
MicroChannel Ethernet adapter. The WD8003E requires three addi-
tional parameters -- the hardware interrupt number, the I/O
address, and the memory base address. The defaults are 2 and
0x280 and 0xc400.
What else?
There are also several utility programs for packet drivers:
PKTADDR
usage: pktaddr packet_int_no [ethernet_addr]
If the second argument is given, the Ethernet address of
the given packet driver is set. The Ethernet address is printed
out.
PKTALL
usage: pktall packet_int_no
All packets are received and discarded from the given
packet driver. This program is of most use with PKTMODE and
TRACE.
PKTCHK
usage: pktchk packet_int_no [packet_int_no]
Test for existance of a packet driver. Returns with
errorlevel 0 if the specified interrupt has a packet driver. If
the second argument is given, all interrupts in the range are
checked for a packet driver. If no packet driver is found at
all, errorlevel 1 is returned.
PKTMODE
usage: pktmode packet_int_no [receive_mode]
If the second argument is given, the receive mode of the
given packet driver is set. A decimal number from the list of
modes should be used. All the possible modes are printed out.
Unimplemented modes are marked with "xx", and the current mode is
marked with "->".
TERMIN
usage: termin packet_int_no
The specified packet driver is terminated, and its memory
recovered.
STAT
usage: stat
The statistics for all packet drivers are printed. The
meanings of the columns are given below.
pktin is the number of packets ever received by this driver.
pktout is the number of packets ever transmitted by this
driver.
bytin is the number of bytes ever received by this driver.
bytout is the number of bytes ever transmitted by this driver.
pkdrop Packets dropped because there was no handler for that
Ethernet packet type.
errin Dependent upon the packet driver.
errout Dependent upon the packet driver.
TRACE
usage: trace packet_int_no [buffer_size]
Trace is very useful for debugging packet driver troubles.
Trace lets you trace all transactions between a user program and
the packet driver. The transactions are stored in a memory
buffer whose size is set with buffer_size. The default size is
10,000 bytes.
When you run trace, it sets itself up and then spawns
COMMAND.COM so that you can run a network program that uses the
packet driver. After you quit your network session, you issue an
"EXIT" command. This returns you to trace, which writes the
transaction log to "TRACE.OUT". The following program, DUMP,
interprets TRACE.OUT.
DUMP
usage: dump
Interprets the contents of TRACE.OUT as written by TRACE.
Who?
See the file support.txt for a listing of all the people who
contributed packet drivers.
Appendix A
Interrupt usage in the range 0x60 through 0x80
60 -- -- reserved for user interrupt
60 -- -- FTP Driver - PC/TCP Packet Driver Specification
60 01 FF FTP Driver - DRIVER INFO
60 02 -- FTP Driver - ACCESS TYPE
60 03 -- FTP Driver - RELEASE TYPE
60 04 -- FTP Driver - SEND PACKET
60 05 -- FTP Driver - TERMINATE DRIVER FOR HANDLE
60 06 -- FTP Driver - GET ADDRESS
60 07 -- FTP Driver - RESET INTERFACE
60 11 -- 10-NET - LOCK AND WAIT
60 12 -- 10-NET - LOCK
60 13 -- 10-NET - UNLOCK
60 20 -- FTP Driver - SET RECEIVE MODE
60 21 -- FTP Driver - GET RECEIVE MODE
60 24 -- FTP Driver - GET STATISTICS
61 -- -- reserved for user interrupt
62 -- -- reserved for user interrupt
63 -- -- reserved for user interrupt
64 -- -- reserved for user interrupt
65 -- -- reserved for user interrupt
66 -- -- reserved for user interrupt
67 -- -- LIM EMS
...
67 DE 00 Virtual Control Program Interface - INSTALLATION CHECK
...
68 01 -- APPC/PC
...
69 -- -- unused
6A -- -- unused
6B -- -- unused
6C -- -- system resume vector (CONVERTIBLE)
6C -- -- DOS 3.2 Realtime Clock update
6D -- -- VGA - internal
6E -- -- unused
6F -- -- Novell NetWare - PCOX API (3270 PC terminal interface)
6F 00 -- 10-NET - LOGIN
...
70 -- -- IRQ8 - AT/XT286/PS50+ - REAL-TIME CLOCK
71 -- -- IRQ9 - AT/XT286/PS50+ - LAN ADAPTER 1
72 -- -- IRQ10 - AT/XT286/PS50+ - RESERVED
73 -- -- IRQ11 - AT/XT286/PS50+ - RESERVED
74 -- -- IRQ12 - PS50+ - MOUSE INTERRUPT
75 -- -- IRQ13 - AT/XT286/PS50+ - 80287 ERROR
76 -- -- IRQ14 - AT/XT286/PS50+ - FIXED DISK
77 -- -- IRQ15 - AT/XT286/PS50+ - RESERVED
78 -- -- not used
79 -- -- not used
7A -- -- Novell NetWare - LOW-LEVEL API
7A -- -- AutoCAD Device Interface
7B -- -- not used
7C -- -- not used
7D -- -- not used
7E -- -- not used
7F -- -- HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
7F -- -- HLLAPI (High-Level Language API)
80 -- -- reserved for BASIC